#ifndef _TAP_H_
#define _TAP_H_


enum TapStates
{
	TestLogicReset,
	RunTestIdle,
	SelectDRScan,
	SelectIRScan,
	CaptureDR,
	CaptureIR,
	ShiftDR,
	ShiftIR,
	Exit1DR,
	Exit1IR,
	PauseDR,
	PauseIR,
	Exit2DR,
	Exit2IR,
	UpdateDR,
	UpdateIR
};

class Tap
{
	private:
	unsigned char state;
	BitPointer TMS;
	
	public:
		Tap();
		Tap(BitPointer tms);
		
		unsigned char getState(); //gets the current state.
		void run(); //do a transition to the next state.
	
};



#endif
